#!/bin/sh
#------------------------------------------------------------------------------
# =========                 |
# \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
#  \\    /   O peration     |
#   \\  /    A nd           | www.openfoam.com
#    \\/     M anipulation  |
#------------------------------------------------------------------------------
#     Copyright (C) 2011-2016 OpenFOAM Foundation
#     Copyright (C) 2016-2020 OpenCFD Ltd.
#------------------------------------------------------------------------------
# License
#     This file is part of OpenFOAM, distributed under GPL-3.0-or-later.
#
# Script
#     ThirdParty Allwmake
#
# Description
#     Build script for ThirdParty applications/libraries
#
# ----------------------------------------------
# NO USER-CONFIGURABLE SETTINGS WITHIN THIS FILE
#------------------------------------------------------------------------------
# Run from third-party directory only
cd "${0%/*}" || exit
wmakeCheckPwd "$WM_THIRD_PARTY_DIR" 2>/dev/null || {
    echo "Error (${0##*/}) : not located in \$WM_THIRD_PARTY_DIR"
    echo "    Check your OpenFOAM environment and installation"
    exit 1
}
. etc/tools/ThirdPartyFunctions
#------------------------------------------------------------------------------
exportCompiler true     # Compiler info + flags for CMake/configure
exportLinker            # Linker flags for CMake/configure
useGccFlag $@           # Scan arguments for a '-gcc' option

#------------------------------------------------------------------------------

echo
echo ========================================
echo Start ThirdParty Allwmake
echo ========================================
echo "using:  $CC $CFLAGS"
echo "using:  $CXX $CXXFLAGS"
echo
echo ========================================
echo Build MPI libraries if required
echo "    $MPI_ARCH_PATH"
case "$WM_MPLIB" in
(OPENMPI | MPICH)
    ./make"$WM_MPLIB" -test "$MPI_ARCH_PATH" || ./make"$WM_MPLIB"
    ;;
esac


#------------------------------------------------------------------------------

# Treat as optional, but really isn't if anyone wants parallel calculations
./makeSCOTCH || warnBuildIssues SCOTCH

#------------------------------------------------------------------------------
echo
echo ========================================
# Get KAHIP_ARCH_PATH
if settings=$($WM_PROJECT_DIR/bin/foamEtcFile config.sh/kahip)
then
    . $settings
fi
if [ -n "$KAHIP_ARCH_PATH" ]
then
    echo KAHIP decomposition
    ./makeKAHIP -test "$KAHIP_ARCH_PATH" || \
    ./makeKAHIP || warnBuildIssues KAHIP
else
    warnNotFound KAHIP   # is optional
fi

#------------------------------------------------------------------------------
echo
echo ========================================
# Get METIS_ARCH_PATH
if settings=$($WM_PROJECT_DIR/bin/foamEtcFile config.sh/metis)
then
    . $settings
fi
if [ -n "$METIS_ARCH_PATH" ]
then
    echo METIS decomposition
    ./makeMETIS -test "$METIS_ARCH_PATH" || \
    ./makeMETIS || warnBuildIssues METIS
else
    warnNotFound METIS   # is optional
fi

#------------------------------------------------------------------------------
echo
echo ========================================
if [ -n "$CGAL_ARCH_PATH" ]
then
    echo "cgal/boost"
    ./makeCGAL -test "$CGAL_ARCH_PATH" "$BOOST_ARCH_PATH" || \
    ./makeCGAL || warnBuildIssues CGAL
else
    warnNotFound CGAL   # is optional
fi

#------------------------------------------------------------------------------
echo
echo ========================================
if [ -n "$FFTW_ARCH_PATH" ]
then
    echo FFTW
    ./makeFFTW -test "$FFTW_ARCH_PATH" || \
    ./makeFFTW || warnBuildIssues FFTW
else
    warnNotFound FFTW   # is optional
fi

#------------------------------------------------------------------------------
echo
echo ========================================
# Get ADIOS2_ARCH_PATH
if settings=$($WM_PROJECT_DIR/bin/foamEtcFile config.sh/adios2)
then
    . $settings
fi
if [ -n "$ADIOS2_ARCH_PATH" ]
then
    echo ADIOS2
    ./makeAdios2 -test "$ADIOS2_ARCH_PATH" || \
    ./makeAdios2 || warnBuildIssues ADIOS2
else
    warnNotFound ADIOS2   # is optional
fi


#------------------------------------------------------------------------------

echo
echo ========================================
echo Done ThirdParty Allwmake
echo ========================================
echo

#------------------------------------------------------------------------------
